Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Utility to parse a size string in bytes (e.g. '1kB'
, '2KiB'
) to numeric (1000
, 2048
) and vice-versa.
This is a fork of the bytes module, except it
TypeScript definitions included.
Supported units are as follows and are case-insensitive. Note that only the abbreviation will be parsed/formatted, the full names are for the reader's understanding only.
Also referred to as SI. See Compatibility Binary for legacy definitions.
Value | Abbr | Name |
---|---|---|
1 | B | byte |
10001 | kB | kilobyte |
10002 | MB | megabyte |
10003 | GB | gigabyte |
10004 | TB | terabyte |
10005 | PB | petabyte |
10006 | EB | exabyte |
10007 | ZB | zettabyte |
10008 | YB | yottabyte |
Value | Abbr | Name |
---|---|---|
1 | B | byte |
10241 | KiB | kibibyte |
10242 | MiB | mebibyte |
10243 | GiB | gibibyte |
10244 | TiB | tebibyte |
10245 | PiB | pebibyte |
10246 | EiB | exbibyte |
10247 | ZiB | zebibite |
10248 | YiB | yobibite |
Also referred to as JEDEC or legacy units.
Overwrites the lower units of the metric system with the commonly misused values, i.e. metric units will be binary instead of decimal. This is the behavior of e.g. the Windows OS and bytes. Units greater than terabyte are not supported.
Value | Abbr | Name |
---|---|---|
10241 | kB | kilobyte |
10242 | MB | megabyte |
10243 | GB | gigabyte |
10244 | TB | terabyte |
This is a Node.js module available through the
npm registry. Installation is done using the
npm install
command:
npm install bytes-iec
var bytes = require('bytes-iec');
Passing a unit type as mode
parameter in API calls determines
Unit type | mode |
---|---|
Metric | 'metric' or 'decimal' |
Binary | 'binary' |
Compatibility Binary | 'compatibility' or 'jedec' |
Format the given value in bytes into a string. If the value is negative, it's kept as such. If it's a float, it's rounded.
Arguments
Name | Type | Description |
---|---|---|
value | number | Value in bytes |
options | Object | Conversion options |
Options
Property | Type | Description | Default |
---|---|---|---|
decimalPlaces | number |null | Maximum number of decimal places to include in output | 2 |
fixedDecimals | boolean |null | Whether to always display the maximum number of decimal places, i.e. preserve trailing zeroes | false |
thousandsSeparator | string |null | What to separate large numbers with, e.g. ',' , '.' , ' ' , ... | '' |
unit | string |null | The unit in which the result will be returned: 'B' , 'kB' , 'KiB' , ... | '' (autodetect) |
unitSeparator | string |null | Separator between numeric value and unit | '' |
mode | string |null | Which mode to use (see Modes) | 'metric' |
Returns
Name | Type | Description |
---|---|---|
results | string |null | Returns null upon error, string value otherwise. |
Example
bytes(1000);
// output: '1kB'
bytes(1000, {thousandsSeparator: ' '});
// output: '1 000B'
bytes(1024);
// output: '1.02kB'
bytes(1024 * 1.7, {decimalPlaces: 0});
// output: '2KB'
bytes(1000, {unitSeparator: ' '});
// output: '1 kB'
bytes(2048, {mode: 'binary'});
// output: '2 KiB'
bytes(1024 * 1024 * 2, {unit: 'KiB'});
// output: '2048 KiB'
bytes(1024 * 1024 * 2, {unit: 'KB'});
// output: '2097.152 KB'
bytes(1024 * 1024 * 2, {unit: 'KB', mode: 'compatibility'});
// output: '2048 KB'
Parse the string value into an integer in bytes. If no unit is given, or value
is a number, it is assumed the value is in bytes.
If the value given has partial bytes, it's truncated (rounded down).
Arguments
Name | Type | Description |
---|---|---|
value | string |number | String to parse, or number in bytes |
options | Object | Conversion options |
Property | Type | Description | Default |
---|---|---|---|
mode | string |null | Which mode to use (see Modes) | 'metric' |
Returns
Name | Type | Description |
---|---|---|
results | number |null | Returns null upon error, value in bytes otherwise. |
Example
bytes('1kB');
// output: 1024
bytes('1024');
// output: 1024
bytes('1.0001 kB');
// output: 1000
bytes('1.0001 KiB');
// output: 1024
bytes('1kB', {mode: 'jedec'});
// output: 1024
Returns a new copy of the bytes-iec
module, but with the given mode as the default.
Arguments
Name | Type | Description |
---|---|---|
mode | string | Default mode to use (see Modes) |
Returns
Name | Type | Description |
---|---|---|
results | object | Returns the byte.js module, with a default mode. |
Example
var bytes = require('bytes').withDefaultMode('jedec');
bytes('1kB');
// output: 1024
bytes('1KiB');
// output: 1024
bytes(1024);
// output: 1 kB
bytes(1024, {mode: 'metric'});
// output: 1.02kB
bytes('1kB', {mode: 'metric'});
// output: 1000
FAQs
(IEC) Utility to parse a string bytes to bytes and vice-versa
The npm package bytes-iec receives a total of 187,163 weekly downloads. As such, bytes-iec popularity was classified as popular.
We found that bytes-iec demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.